/**
 * Created by Ysssssss on 20/12/15.
 */
import { get, post, put, del } from '../common/ajax';
import { BRD_BRAND_URL, BRD_PRODUCT_URL, BRD_PRODUCT_GROUP_URL, STO_PRODUCT_URL, STO_PRODUCT_GROUP_URL } from "../constants/url";

/**
 * 获取品牌商品列表
 * @param groupId
 * @param keyword
 * @param pageNo
 * @param pageSize
 */
export const getProductList = async ({ groupId, keyword, pageNo, pageSize }) => {
    const res = await get(BRD_PRODUCT_URL.list(), {
        productGroupId: groupId, keyword, pageNo, pageSize
    });
    return res.data && res.data.rows || []
}

/**
 * 获取品牌供货商品列表
 * @param groupId
 * @param pageNo
 * @param pageSize
 */
export const getSupplyProductList = async ({ groupId, pageNo, pageSize }) => {
    const res = await get(BRD_BRAND_URL.getDistributeProductList(), {
        productGroupId: groupId, pageNo, pageSize
    });
    return res.data && res.data.rows || []
}

/**
 * 获取店铺商品列表
 * @param groupId
 * @param keyword
 * @param pageNo
 * @param pageSize
 */
export const getStoreProductList = async ({ groupId, keyword, pageNo, pageSize }) => {
    const res = await get(STO_PRODUCT_URL.list(), {
        productGroupId: groupId, keyword, pageNo, pageSize
    });
    return res.data && res.data.rows || []
}

/**
 * 根据商品id列出门店商品
 * @param {Array} productIds
 */
export const getStoreProductListByIds = async ({ productIds }) => {
    const res = await get(STO_PRODUCT_URL.listByIds(), {
        productIds
    });
    return res.data || []
}

/**
 * 获取品牌商品详情
 * @param id
 */
export const getProductInfo = async ({ id }) => {
    const res = await get(BRD_PRODUCT_URL.detail(id))
    return res.data || null
}

/**
 * 新建品牌商品
 * @param params
 */
export const createProduct = async (params) => {
    const res = await post(BRD_PRODUCT_URL.create(), params)
    return !!res.data
}

/**
 * 删除品牌商品
 * @param id
 */
export const deleteProduct = async ({ id }) => {
    const res = await del(BRD_PRODUCT_URL.delete(id))
    return !!res.data
}

/**
 * 编辑品牌商品
 * @param id
 * @param params
 */
export const editProduct = async ({ id, ...params }) => {
    const res = await put(BRD_PRODUCT_URL.edit(id), params)
    return !!res.data
}

/**
 * 获取品牌可导入商品
 * @param query
 * @param pageNo
 */
export const getImportProductList = async ({ query, pageNo, pageSize }) => {
    const res = await get(BRD_PRODUCT_URL.importList(), {
        query, pageNo, pageSize
    })
    return res.data || []
}

/**
 * 导入品牌商品
 * @param syncIds
 */
export const importProduct = async ({ syncIds }) => {
    const res = await post(BRD_PRODUCT_URL.import(), {
        syncIds
    })
    return !!res.data
}

/**
 * 获取品牌商品分组列表
 */
export const getProductGroupList = async () => {
    const res = await get(BRD_PRODUCT_GROUP_URL.list())
    return res.data ? res.data.rows : []
}

/**
 * 获取店铺商品分组列表
 */
export const getStoreProductGroupList = async () => {
    const res = await get(STO_PRODUCT_GROUP_URL.list())
    return res.data ? res.data.rows : []
}

/**
 * 新建品牌商品分组
 * @param name
 */
export const createProductGroup = async ({ name }) => {
    const res = await post(BRD_PRODUCT_GROUP_URL.create(), {
        name
    })
    return !!res.data
}

/**
 * 删除品牌商品分组
 * @param id
 * @returns {Promise<boolean>}
 */
export const deleteProductGroup = async ({ productGroupId }) => {
    const res = await del(BRD_PRODUCT_GROUP_URL.delete(productGroupId))
    return !!res.data
}

/**
 * 编辑品牌商品分组
 * @param id
 * @param name
 * @returns {Promise<boolean>}
 */
export const editProductGroup = async ({ productGroupId, name }) => {
    const res = await put(BRD_PRODUCT_GROUP_URL.edit(productGroupId), { name })
    return !!res.data
}

/**
 * 品牌商品分组排序
 * @param ids
 */
export const sortProductGroup = async ({ productGroupIds }) => {
    const res = await post(BRD_PRODUCT_GROUP_URL.sort(), { productGroupIds })
    return !!res.data
}
